<template>
	<!-- 自定义导航栏的外层容器 -->
	<view class="custom-navbar" :style="{height: `${navBarHeight}px`, paddingTop: `${statusBarHeight}px` }">
		<!-- 左侧返回按钮 -->
		<view class="navbar-left" @click="goBack">
			<image class="navbar-right-img" src="/static/fanhui.png"></image>
			<view class="navbar-left-fh">返回</view>
		</view>
		<!-- 中间标题 -->
		<view class="navbar-title">{{ title }}</view>
		<!-- 右侧可以添加其他按钮或图标 -->
		<view class="navbar-right">
			<!-- 预留区域 -->
		</view>
	</view>
</template>

<script setup>
	import {
		ref,
		onMounted
	} from 'vue';
	const prop = defineProps({
		title: {
			type: String,
			default: '标题'
		},
	})
	// 定义状态栏高度和导航栏高度的响应式变量
	const statusBarHeight = ref(0);
	const navBarHeight = ref(0);
	// 返回上一个页面的方法
	const goBack = () => {
		uni.navigateBack();
	};
	// 组件挂载时获取系统信息并计算导航栏高度
	onMounted(() => {
		const systemInfo = uni.getSystemInfoSync();
		statusBarHeight.value = systemInfo.statusBarHeight; // 获取状态栏高度
		// 根据平台计算导航栏高度
		navBarHeight.value = systemInfo.platform === 'android' ?
			statusBarHeight.value + 48 // Android 导航栏高度
			:
			statusBarHeight.value + 44; // iOS 导航栏高度
	});
</script>

<style scoped>
	/* 导航栏样式 */
	.custom-navbar {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		background-color: #fff;
		box-shadow: 0 1rpx 0 0 rgba(0, 0, 0, 0.1);
		padding: 0 20rpx;
		box-sizing: border-box;
		position: fixed;
		top: 0;
		z-index: 9999;
	}

	/* 左右两侧按钮区域样式 */
	.navbar-left,
	.navbar-right {
		width: 120rpx;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.navbar-right-img {
		width: 48rpx;
		height: 48rpx;
	}

	.navbar-left-fh {
		font-size: 32rpx;
	}

	/* 中间标题样式 */
	.navbar-title {
		flex: 1;
		text-align: center;
		font-size: 32rpx;
		font-weight: bold;
	}

	/* 图标字体样式 */
	.navbar-iconfont {
		font-size: 40rrpx;
	}
</style>